<?php


/**
 * 格式化时间
 * @param mixed \Carbon\Carbon $dt / Int $timestamp / String $date / String "now"
 * @return date
 */
function format_time($dt)
{
    $format = [
        'between_one_minute' => '刚刚',
        'before_minute' => '分钟前',
        'after_minute' => '分钟后',
        'today' => 'H:i',
        'yesterday' => '昨天 H:i',
        'tomorrow' => '明天 H:i',
        'default' => 'n月d日 H:i',
        'diff_year' => 'Y年n月d日 H:i',
        'error' => '时间显示错误'
    ];
    //创建对象
    if (is_int($dt)) {
        $dt = Carbon\Carbon::createFromTimestamp($dt);
    } else if (!$dt instanceof \Carbon\Carbon) {
        //错误时间
        if ($dt == '0000-00-00 00:00:00' || $dt === '0') return $format['error'];
        $dt = new Carbon\Carbon($dt);
    }
    $now = \Carbon\Carbon::now();
    //今天
    if ($dt->isToday()) {
        $diff_minute = floor(abs($now->timestamp - $dt->timestamp) / 60);
        $diff_second = $now->timestamp - $dt->timestamp;
        //一小时内
        if ($diff_minute < 60) {
            //一分钟内
            if ($diff_second < 60 && $diff_second >= 0) return $format['between_one_minute'];
            return $diff_second < 0 ? $diff_minute . $format['after_minute'] : $diff_minute . $format['before_minute'];
        }
        return $dt->format($format['today']);
    }
    //昨天
    if ($dt->isYesterday()) return $dt->format($format['yesterday']);
    //明天
    if ($dt->isTomorrow()) return $dt->format($format['tomorrow']);
    //非今年，其他时间
    if ($dt->format('Y') !== $now->format('Y')) return $dt->format($format['diff_year']);
    //今年，其他时间
    return $dt->format($format['default']);
}

/**
 * get site config from DB
 * @param $key the config key
 * @return mixed
 */

function get_config($key)
{
    $file_path = storage_path('framework/cache') . '/configs.php';
    if (!file_exists($file_path)) {
        Event::fire(new \App\Events\ConfigChangeEvent());
    }
    $configs = require $file_path;
    return array_key_exists($key, $configs) ? $configs[$key] : '';
}


























